#include <iostream>
#include <string>
#include <ctemplate/template.h>


//ctemplate的使用
int main()
{
    std::string in_html = "./test.html";
    std::string value = "刘天为";

    //形成数据字典
    ctemplate::TemplateDictionary root("test"); // unordered_map<> test;
    root.SetValue("key",value);                 // test.insert();

    //获取被渲染网页对象
    ctemplate::Template* tpl = ctemplate::Template::GetTemplate(in_html,ctemplate::DO_NOT_STRIP);
    
    //添加字典数据到网页中
    std::string out_html;
    tpl->Expand(&out_html,&root);

    //完成了渲染
    std::cout << out_html << std::endl;
    return 0;
}








// #include <iostream>
// #include <vector>
// #include <boost/algorithm/string.hpp>




// //boost库测试
// int main()
// {
//     std::vector<std::string> tokens;
//     const std::string str = "1:判断回文数:简单::::::1:30000";
//     const std::string sep = ":";
//     boost::split(tokens,str,boost::is_any_of(sep),boost::algorithm::token_compress_on);
//     // boost::split(tokens,str,boost::is_any_of(sep),boost::algorithm::token_compress_off);
//     for(auto& iter:tokens)
//     {
//         std::cout << iter << std::endl;
//     }
//     return 0;
// }















// #include <sys/time.h>
// #include <sys/resource.h>
// #include <unistd.h>
// #include <signal.h>
// #include <jsoncpp/json/json.h>



//Json库测试


// int main()
// {
//     //序列化的工作
//     //Value是Json的中间类,可以填充KV值
//     //将结构化数据转化成字符串
//     Json::Value root;
//     root["code"] = "mycode";
//     root["usr"] = "whb";
//     root["age"] = "19";

//     // Json::StyledWriter writer;
//     Json::FastWriter writer;
//     std::string str = writer.write(root);
//     std::cout << str << std::endl;

//     return 0;
// }







//时间空间限制测试


// void handler(int signo)
// {
//     std::cout << "signo: " << signo << std::endl;
//     exit(1);
// }

// int main()
// {
//     //资源不足,导致OS终止进程,是通过信号进行终止的
//     for(int i=1;i<=31;i++)
//     {
//         signal(i,handler);
//     }


//     //时间限制
//     //限制累计运行时长
//     struct rlimit r;
//     r.rlim_cur = 1;//当前秒数为1
//     r.rlim_max = RLIM_INFINITY;//无穷,最大不做约束

//     setrlimit(RLIMIT_CPU,&r);

//     while(1);




//     //空间限制
//     // struct rlimit r;
//     // r.rlim_cur = 1024 * 1024 * 40; // 40M
//     // r.rlim_max = RLIM_INFINITY;
//     // setrlimit(RLIMIT_AS,&r);

//     // int count = 0;
//     // while(true)
//     // {
//     //     int* p = new int[1024*1024];
//     //     count++;
//     //     std::cout << "size: " << count << std::endl;
//     //     sleep(1);
//     // }
//     return 0;
// }


